package lab05.servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CalcularVolumenServlet
 */
@WebServlet("/CalcularVolumenServlet")
public class CalcularVolumenServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public CalcularVolumenServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String opciones = request.getParameter("opciones");
		String primero = request.getParameter("primero");
		String segundo = request.getParameter("segundo");
		String tercero = request.getParameter("tercero");
		String cuarto = request.getParameter("cuarto");
		String quinto = request.getParameter("quinto");
		String sexto = request.getParameter("sexto");
		System.out.println(opciones);
		ArrayList lista = new ArrayList();

		String cadenaOrdenada = "";

		// Convertir String a int
		int xprimero = Integer.parseInt(primero);
		int xsegundo = Integer.parseInt(segundo);
		int xtercero = Integer.parseInt(tercero);
		int xcuarto = Integer.parseInt(cuarto);
		int xquinto = Integer.parseInt(quinto);
		int xsexto = Integer.parseInt(sexto);
		lista.add(xprimero);
		lista.add(xsegundo);
		lista.add(xtercero);
		lista.add(xcuarto);
		lista.add(xquinto);
		lista.add(xsexto);

		if (opciones.equals("opcion_1")) {
			// Formula para ascendete
			Collections.sort(lista);
		} else {
			// Formula para descendente
			Comparator<Integer> comparador = Collections.reverseOrder();
			Collections.sort(lista, comparador);
		}

		// Barriendo el arreglo
		for (int k = 0; k < lista.size(); k++) {
			cadenaOrdenada = cadenaOrdenada + lista.get(k);
			if (k<lista.size()-1){
				cadenaOrdenada=cadenaOrdenada+",";
			}else{
				cadenaOrdenada=cadenaOrdenada+".";
			}
		}

		// Guardar en memoria
		request.setAttribute("RESULTADO", cadenaOrdenada);

		// Volver a mostrar el JSP
		RequestDispatcher rd = request.getRequestDispatcher("Ejercicio2.jsp");
		rd.forward(request, response);
	}

}
